home *** CD-ROM | disk | FTP | other *** search
/ SGI MIPSpro Fortran-77 7.2 / SGI MIPSpro Fortran-77 7.2.iso / docs6.4 / relnotes / ftn77_fe / ch4.z / ch4
Text File  |  1997-09-04  |  10KB  |  330 lines

  1.  
  2.  
  3.  
  4.                                                - 1 -
  5.  
  6.  
  7.  
  8.                     7.2 Fortran 77 Front-End Release Notes
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                                - 2 -
  69.  
  70.  
  71.  
  72.                     DDDDooooccccuuuummmmeeeennnntttt NNNNuuuummmmbbbbeeeerrrr 000000007777----1111666655559999----000011110000
  73.  
  74.  
  75.                     4.  _N_e_w__F_e_a_t_u_r_e_s__o_f__T_h_i_s__R_e_l_e_a_s_e
  76.  
  77.                     This chapter contains the differences between
  78.                     this release and the 7.1 release of MIPSpro
  79.                     Fortran 77 compiler.
  80.  
  81.  
  82.                     4.1  _R_e_p_a_c_k_a_g_i_n_g__o_f__F_r_o_n_t_-_E_n_d__S_u_b_s_y_s_t_e_m_s
  83.  
  84.  
  85.                     The MIPSpro Fortran 77 front-end subsystems are
  86.                     now packaged on their own separate CD. Before
  87.                     installing the MIPSpro Fortran 77 Front-end
  88.                     subsystems you must first install compiler_dev,
  89.                     compiler_eoe, ftn_dev, and ftn_eoe from the IRIX
  90.                     Development Foundation CD. Should you desire to
  91.                     use the new 7.2 Fortran 77 runtime libraries,
  92.                     you must install patchSG0002016.ftn_dev_sw
  93.                     patchSG0002016.ftn_eoe_sw (*.sw64 subsystems are
  94.                     required only for 64-bit operation).
  95.  
  96.  
  97.                     4.2  _O_p_t_i_o_n__t_o__u_s_e__F_o_r_t_r_a_n__9_0__l_i_b_r_a_r_y
  98.  
  99.  
  100.                     The -_c_r_a_y_l_i_b_s option allows you to use the
  101.                     Fortran 90 library, libfortran.so, (based on the
  102.                     Cray FFIO library) to link your program.  Using
  103.                     this option requires installation of Patch 2016
  104.                     (available on the IRIX Development Foundation
  105.                     CD's).  Note that only standard Fortran 77 I/O
  106.                     operations are supported in this release.  If
  107.                     you use any SGI Fortran 77 extensions
  108.                     (particularly ISAM and variable formats) you
  109.                     cannot use the -_c_r_a_y_l_i_b_s option.
  110.  
  111.  
  112.                     4.3  _N_e_w__O_p_t_i_o_n_s__a_n_d__D_e_f_a_u_l_t_s
  113.  
  114.  
  115.                     A new -_D_E_B_U_G:_o_p_t_i_o_n control group has been
  116.                     created to allow insertion of code to assist in
  117.                     the debugging of programs.  For example,
  118.                     -_D_E_B_U_G:_d_i_v__c_h_e_c_k=_N replaces -_T_E_N_V:_c_h_e_c_k__d_i_v=_N
  119.                     and the 7.2 compiler, by default, inserts code
  120.                     to check for divide by zero (N=1).
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.                                                - 3 -
  135.  
  136.  
  137.  
  138.                     _N_O_T_E:  The default value for -_T_E_N_V:_c_h_e_c_k__d_i_v=_N
  139.                     under MIPSpro 7.1 was N=0 (no checks).
  140.  
  141.                     For more information, please refer to the _f_7_7(1)
  142.                     and _D_E_B_U_G__g_r_o_u_p(5) man pages.
  143.  
  144.                     The -_L_I_S_T: options control group has been
  145.                     enhanced to the create a listing file (.l) that
  146.                     contains the values of all flags  modified,
  147.                     directly in the command line, or indirectly as a
  148.                     side effect of other options. For example:
  149.  
  150.                     % f77 -n32 -LIST:options=ON foo.f
  151.  
  152.                     will create foo.l which contains a listing that
  153.                     contains the default values of certain options
  154.                     from the -OPT, -LNO, -TARG and -TENV option
  155.                     control groups.
  156.  
  157.                     The following command:
  158.  
  159.                     % f77 -n32 -LIST:all_options=ON foo.f
  160.  
  161.                     will create foo.l which contains a listing that
  162.                     contains the default values of all options from
  163.                     all of the option control groups.
  164.  
  165.                     For more information, please refer to the _f_7_7(1)
  166.                     man page.
  167.  
  168.  
  169.                     4.4  _O_b_s_o_l_e_t_e__O_p_t_i_o_n_s
  170.  
  171.  
  172.                     Several compile-time flags have been obsoleted.
  173.                     These include: -_T_E_N_V:_m_i_s_a_l_i_g_n_e_m_n_t=_N,
  174.                     -_T_E_N_V:_a_l_i_g_n__e_x_t_e_r_n=_N and -_T_E_N_V:_a_l_i_g_n_e_d=_T_R_U_E.
  175.                     Their use will generate a warning message in
  176.                     both the compiler front-end and backend. For
  177.                     example:
  178.  
  179.                     % f77 -n32 -TENV:misalignment=3 reshape.f
  180.                     Warning: Obsolete option "-TENV:misalignment=3" -- ignored
  181.                     Warning: Obsolete option "-TENV:misalignment=3" -- ignored
  182.  
  183.                     The -_T_E_N_V:_v_a_r_a_r_g_s__p_r_o_t_o_t_y_p_e_s=_T_R_U_E flag has been
  184.                     replaced by -_D_E_B_U_G:_v_a_r_a_r_g_s__p_r_o_t_o_t_y_p_e_s=_T_R_U_E.
  185.  
  186.                     For more information, please refer to the _f_7_7(1)
  187.                     and _D_E_B_U_G__g_r_o_u_p(5) man pages.
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.                                                - 4 -
  201.  
  202.  
  203.  
  204.                     4.5  _F_i_l_l__a_n_d__A_l_i_g_n__D_i_r_e_c_t_i_v_e__S_u_p_p_o_r_t
  205.  
  206.  
  207.                     MIPSpro 7.2 Fortran 77 supports new types of
  208.                     directives to facilitate padding and alignment
  209.                     of variables within cachelines and pages of
  210.                     memory. They are outlined below.
  211.  
  212.  
  213.                     c*$*    fill_symbol (s, L1cacheline)
  214.                     c*$*    fill_symbol (s, L2cacheline)
  215.                     c*$*    fill_symbol (s, page)
  216.                     c*$*    fill_symbol (s, <user-specified-power-of-two>)
  217.                     c*$*    align_symbol (s, L1cacheline)
  218.                     c*$*    align_symbol (s, L2cacheline)
  219.                     c*$*    align_symbol (s, page)
  220.                     c*$*    align_symbol (s, <user-specified-power-of-two>)
  221.  
  222.  
  223.                     The fill_symbol and align_symbol directives take
  224.                     a symbol (i.e. a variable that may be a Fortran
  225.                     COMMON, or an automatic variable, but not a
  226.                     formal and not an element of a structured type
  227.                     like a struct or an array).  The second argument
  228.                     in the directive may be one of the keywords
  229.                     L1cacheline (machine specific first-level cache
  230.                     line size, typically 32 bytes), L2cacheline
  231.                     (machine specific second-level cache line size,
  232.                     typically 128 bytes), page (machine specific
  233.                     page size, typically 16 Kbytes), or a user-
  234.                     specified power-of-two value.
  235.  
  236.                     The align_symbol directive aligns the start of
  237.                     the named symbol at the specified alignment,
  238.                     i.e. the symbol "s" will start at the specified
  239.                     alignment boundary.
  240.  
  241.                     The fill_symbol directive pads the named symbol
  242.                     with additional storage so that the symbol is
  243.                     assured not to overlap with any other data item
  244.                     within the storage of the specified size. The
  245.                     additional padding required is heuristically
  246.                     divided between each end of the specified
  247.                     variable. For instance, a fill_symbol directive
  248.                     for the L1cacheline will guarantee that the
  249.                     specified symbol will not suffer from false-
  250.                     sharing for the L1 cache line.
  251.  
  252.                     For global variables these directive must be
  253.                     specified at the variable definition, and are
  254.                     optional at the declarations of the variable.
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.                                                - 5 -
  267.  
  268.  
  269.  
  270.                     For COMMON block variables these directive are
  271.                     required at each declaration of the COMMON
  272.                     block. Since the directive modify the allocated
  273.                     storage and its alignment for the named symbol,
  274.                     inconsistent directive can lead to undefined
  275.                     results.
  276.  
  277.                     The align_symbol directive is ineffective for
  278.                     local variables of fixed-size symbols, such as
  279.                     simple scalars or arrays of known size. The
  280.                     directive continues to be effective for stack-
  281.                     allocated arrays of dynamically-determined size.
  282.  
  283.                     A variable cannot have both fill_symbol and
  284.                     align_symbol directives applied to it.
  285.  
  286.  
  287.                     4.6  _N_e_w _A_u_t_o_m_a_t_i_c _P_a_r_a_l_l_e_l_i_z_a_t_i_o_n _O_p_t_i_o_n
  288.                          _P_r_o_d_u_c_t
  289.  
  290.  
  291.                     The 7.2 release of the MIPSpro compilers marks a
  292.                     major revision of the auto-parallelizer. The new
  293.                     product incorporates automatic parallelization
  294.                     into the other optimizations performed by the
  295.                     MIPSpro compilers.  Previous versions relied on
  296.                     preprocessors to provide source-to-source
  297.                     conversions prior to compilation. This change
  298.                     provides several benefits to developers:
  299.  
  300.                     Automatic parallelization is integrated with
  301.                     optimizations for single processors.
  302.  
  303.                     A set of options and pragmas consistent with the
  304.                     rest of the MIPSpro compilers.
  305.  
  306.                     Better run-time and compile-time performance.
  307.  
  308.                     For more information, please refer to the
  309.                     auto_p(5) man pages.
  310.  
  311.                     NOTE: In order to run the new automatic
  312.                     parallelization, you must purchase the MIPSpro
  313.                     Auto Parallelization Option (SC4-APO-7.2) and
  314.                     install the license for it (FEATURE name string
  315.                     = auto_pp).
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.